package net.lab1024.sa.admin.module.business.oa.reservation.domain.form;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import lombok.Data;
import net.lab1024.sa.base.common.json.deserializer.DictDataDeserializer;
import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;

/**
 * 预约记录 更新表单
 *
 * @Author TianYuan
 * @Date 2025-07-22 16:21:55
 * @Copyright TianYuan
 */

@Data
public class ReservationUpdateForm {

    @Schema(description = "预约记录主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "预约记录主键ID 不能为空")
    private Long reservationId;

    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "企业名称 不能为空")
    private String enterpriseName;

    @Schema(description = "预约类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "预约类型 不能为空")
    @JsonDeserialize(using = DictDataDeserializer.class)
    private String reservationType;

    @Schema(description = "预约人姓名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "预约人姓名 不能为空")
    private String reservationUser;

    @Schema(description = "预约人电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "预约人电话 不能为空")
    private String reservationPhone;

    @Schema(description = "预约时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "预约时间 不能为空")
    private LocalDateTime reservationTime;

    @JsonDeserialize(using = FileKeyVoDeserializer.class)
    private String reservationFile1;

    @JsonDeserialize(using = FileKeyVoDeserializer.class)
    private String reservationFile2;

}
